package com.gly091020.touhouLittleMad.event;

import com.github.tartaricacid.touhoulittlemaid.entity.item.EntitySit;
import com.github.tartaricacid.touhoulittlemaid.entity.passive.EntityMaid;
import net.neoforged.bus.api.Event;
import net.neoforged.bus.api.ICancellableEvent;

public abstract class MaidSittingInJoyEvent extends Event {
    private final EntityMaid maid;
    private final EntitySit sit;
    private final String joyType;
    public MaidSittingInJoyEvent(EntityMaid maid, EntitySit sit){
        this.maid = maid;
        this.sit = sit;
        this.joyType = sit.getJoyType();
    }

    public EntityMaid getMaid() {
        return maid;
    }

    public EntitySit getSit() {
        return sit;
    }

    public String getJoyType() {
        return joyType;
    }

    public static class Start extends MaidSittingInJoyEvent{
        public Start(EntityMaid maid, EntitySit sit) {
            super(maid, sit);
        }
    }

    public abstract static class Tick extends MaidSittingInJoyEvent{
        public Tick(EntityMaid maid, EntitySit sit) {
            super(maid, sit);
        }

        public static class Post extends MaidSittingInJoyEvent{
            public Post(EntityMaid maid, EntitySit sit) {
                super(maid, sit);
            }
        }
        public static class Pre extends MaidSittingInJoyEvent{
            public Pre(EntityMaid maid, EntitySit sit) {
                super(maid, sit);
            }
        }
    }

    public static class Stop extends MaidSittingInJoyEvent{
        public Stop(EntityMaid maid, EntitySit sit) {
            super(maid, sit);
        }
    }
}
